package cvi.com.reader.base;

import android.annotation.SuppressLint;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;

import java.io.IOException;

/**
 * Created by 梅涛 on 2020/8/6.
 * <p>
 * 音乐播放器单例模式
 */

public class BackgroundMusicPlay {
    private static BackgroundMusicPlay backgroundmusic = null;// 单例类对象
    private static MediaPlayer mp; // MediaPlayer引用
    private AudioManager am; // AudioManager引用
    private boolean pauseFlag = false; // 暂停标记，true暂停态，false非暂停态
    private static Uri uri = null;
    private static Context mcontext;

    /**
     * 私有的构造器
     *
     * @param context
     */

    private BackgroundMusicPlay(Context context, Uri ulr) {


      /*  am = (AudioManager) context.getSystemService(context.AUDIO_SERVICE);*/


    }

    /**
     * 得到单例类对象
     *
     * @param context
     * @return
     */

    public static BackgroundMusicPlay getInstance(Context context, Uri url) {

        if (backgroundmusic == null) {

            backgroundmusic = new BackgroundMusicPlay(context, url);
        }
        mp = new MediaPlayer();// 得到mediaPlayer对象
        uri = url;
        mcontext = context;
        return backgroundmusic;

    }

    public void musicPlay() {// 播放音乐


        try {
            mp.reset();
            mp.setDataSource(mcontext, uri);//音乐文件路径
            mp.prepare();//资源文件准备
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (!mp.isPlaying()) {
            mp.start();//播放
        }
    }

    public void musicPause() {// 暂停播放
        if (mp.isPlaying()) {
            mp.pause();//暂停
        }

    }

    public void musicStop() {// 停止播放

        mp.stop(); // 停止播放

        mp.reset(); // 重置状态到uninitialized态

    /*    try {

            mp.setDataSource("/sdcard/newgalactic.mp3"); // 加载声音，进入Initialized状态。

        } catch (Exception e) {

            e.printStackTrace();

        }

        try {

            mp.prepare(); // 进入prepared状态。

        } catch (Exception e) {

            e.printStackTrace();

        }*/

    }
}
